package com.itheima.mapper;

import com.itheima.pojo.Emp;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.time.LocalDate;
import java.util.List;

/**
 * Author: Zheng
 * Date:   2024/1/21  21:50
 */
@Mapper
public interface EmpMapper {

    /*@Select("select count(*) from emp")
    Long count();

    @Select("select * from emp limit #{page},#{pageSize}")
    List<Emp> list(Integer page,Integer pageSize);*/

    //@Select("select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time from emp")
    List<Emp> list(String name, Short gender, LocalDate begin, LocalDate end);


    /**
     * @description： 批量删除
     * @date：2024/1/25 16:36
     * @return：
     **/
    void delete(Integer[] ids);

    /**
     * @description： 员工新增
     * @date：2024/1/25 16:37
     * @return：
     **/
    void insert(Emp emp);

    /**
     * @description： 根据id查询员工信息
     * @date：2024/1/25 16:37
     * @return：
     **/
    @Select("select * from emp where id = #{id}")
    Emp findById(Integer id);

    /**
     * @description： 修改员工信息
     * @date：2024/1/25 16:37
     * @return：
     **/
    void update(Emp emp);


    /**
     * @description： 用户登录
     * @date：2024/1/25 16:37
     * @return：
     **/
    Emp getByUsernameAndPassword(Emp emp);

    /**
     * @description： 删除部门同时根据部门id删除部门下员工
     * @date：2024/1/27  15:42
     * @return：
     **/
    @Delete("delete from emp where dept_id = #{id}")
    void deleteByDeptId(Integer id);
}
